﻿Public Class xtf_LISTADOarticulo_2
    Private dtt_componente_ As DataTable

    Public Overrides Sub IniciarLista()
        Try

            gdc_general.BringToFront()

            gdc_general.BeginUpdate()
            gdc_general.DataSource = dtt_DataTable
            'ulg_Lista.DisplayLayout.GroupByBox.Style = Infragistics.Win.UltraWinGrid.GroupByBoxStyle.Full

            'Creacion y carga de Cuentas
            dtt_DataTable.Columns.Add("Identificador (ID)")
            dtt_DataTable.Columns.Add("Código")
            dtt_DataTable.Columns.Add("Nombre")
            dtt_DataTable.Columns.Add("Nombre corto")
            dtt_DataTable.Columns.Add("Descripción")
            dtt_DataTable.Columns.Add("Artículo Rubro")
            dtt_DataTable.Columns.Add("Unidad")
            dtt_DataTable.Columns.Add("I.V.A. %", GetType(Decimal))

            gdv_general.PopulateColumns(dtt_DataTable)

            gdv_general.Columns("I.V.A. %").AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far
            gdv_general.Columns("I.V.A. %").AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far

            Dim obj_Articulo_ As New cls_articulo_
            If obj_Articulo_.CargarTodos(ObtenerRegistroEstado) Then
                For Each Articulo As cls_articulo_ In obj_Articulo_.Items
                    AgregarItem(Articulo)
                Next
            End If
            'ulg_Lista.DataBind()
            FiltrarColumnas()
            gdc_general.EndUpdate()

        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Function AgregarItem(ByRef Articulo As cls_articulo_) As DataRow
        Dim Row As DataRow = dtt_DataTable.NewRow
        Row("Identificador (ID)") = Articulo.idarticulo
        Row("Código") = Articulo.codigo
        Row("Nombre") = Articulo.nombre
        Row("Nombre corto") = Articulo.nombrecorto
        Row("Descripción") = Articulo.descripcion
        Row("Artículo Rubro") = Articulo.articulorubro.ToString
        Row("Unidad") = Articulo.unidad.ToString
        Row("I.V.A. %") = Articulo.iva
        dtt_DataTable.Rows.Add(Row)
        'ulg_Lista.Rows(ulg_Lista.Rows.Count - 1).Height = 19
        Return Row
    End Function

    Public Sub ModificarItem(ByRef Articulo As cls_articulo_, ByRef ulg_row As DataRow, Optional ByVal prm_nivel2 As Boolean = False)
        ulg_row("Identificador (ID)") = Articulo.idarticulo
        ulg_row("Código") = Articulo.codigo
        ulg_row("Nombre") = Articulo.nombre
        ulg_row("Nombre corto") = Articulo.nombrecorto
        ulg_row("Descripción") = Articulo.descripcion
        ulg_row("Artículo Rubro") = Articulo.articulorubro.ToString
        ulg_row("Unidad") = Articulo.unidad.ToString
        ulg_row("I.V.A. %") = Articulo.iva
    End Sub

    Public Sub New()

        Me.Cursor = Cursors.WaitCursor
        InitializeComponent()
        PERMISONuevo = "008001002"
        PERMISOModificar = "008001003"
        PERMISOEliminar = "008001004"
        PERMISOImprimir = "008001005"
        Me.Text = lbl_modulo.Text : lbl_modulodescripcion.Text = "Listado de " & lbl_modulo.Text & "."
        IniciarLista()
        Me.Cursor = Cursors.Default

    End Sub
    Public Overrides Sub bbi_Nuevo_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISONuevo) Then
            bsi_estado.Caption = "Cargando..."
            Application.DoEvents()
            Dim ABM As Object
            ABM = New xtf_ABMarticulo2
            ABM.Nuevo(Me)
            ABM.ControlarModificaciones(ABM.lac_general.items)
            bsi_estado.Caption = "Listo"
        End If
        Strings.Left(Replace(Me.Name, "xtf_LISTADO", "xtf_ABM"), Replace(Me.Name, "xtf_LISTADO", "xtf_ABM").Length - 2)
    End Sub

    Public Overrides Sub bbi_Modificar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOModificar) Then
            Try
                Dim barrio As Object 'New cls_barrio_
                barrio = New cls_articulo_
                If gdv_general.SelectedRowsCount > 0 Then
                    If barrio.Buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)")) Then
                        bsi_estado.Caption = "Cargando..."
                        Application.DoEvents()
                        Dim ABM As Object 'New xtf_ABMbarrio
                        ABM = New xtf_ABMarticulo2
                        ABM.Modificar(barrio, Me, gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))
                        ABM.ControlarModificaciones(ABM.lac_general.items)
                        bsi_estado.Caption = "Listo"
                    End If
                End If

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub
    Public Overrides Sub bbi_Eliminar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOEliminar) Then
            Try
                If gdv_general.SelectedRowsCount > 0 Then
                    If ErrManagerShow("000005", Me) = DialogResult.Yes Then
                        Dim eliminarRegistro As Boolean = False
                        If UsuarioLOG.esroot Then
                            If ErrManagerShow("001023", Me) = DialogResult.Yes Then
                                eliminarRegistro = True
                            End If
                        End If


                        Dim objeto As Object
                        objeto = New cls_articulo_

                        If eliminarRegistro Then
                            objeto.Eliminar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                        Else
                            objeto.buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                            objeto.registro.idregistroestado = 2
                            objeto.modificar()
                        End If

                        dtt_DataTable.Rows.Remove(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))
                        For Each row As DataRow In dtt_componente_.Rows
                            If row("Identificador (ID)") = gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)") Then
                                dtt_componente_.Rows.Remove(row)
                                Exit For
                            End If
                        Next
                    End If
                End If
            Catch ex As Exception
                ErrManagerShow(ex.Message, Me)
            End Try
        End If

    End Sub
End Class